package com.etone.smartAudit.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author: 蒋学伟
 * @date: 2018-07-26 14:50:57
 * @description: 角色
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@TableName(value = "d_admin_role")
public class AdminRole implements Serializable {

    @TableId(type = IdType.AUTO, value = "intId")
    private Integer id;

    /**
     * 角色名称
     */
    @TableField(value = "vcName")
    private String name;

    /**
     * 角色代号（唯一性）
     */
    @TableField(value = "vcCode")
    private String code;

    /**
     * 备注
     */
    @TableField(value = "vcRemark")
    private String remark;

    /**
     * 创建人
     */
    @TableField(value = "intCreateAdminId")
    private Integer createAdminId;

    /**
     * 创建时间
     */
    @TableField(value = "dtCreateTime")
    private Date createTime;

    /**
     * 最后修改人
     */
    @TableField(value = "intUpdateAdminId")
    private Integer updateAdminId;

    /**
     * 最后修改时间
     */
    @TableField(value = "dtUpdateTime")
    private Date updateTime;

    /**
     * 是否是超级管理员
     */
    @TableField(value = "isSupper")
    private Boolean isSupper;

    /**
     * 角色下的管理员
     */
    @TableField(exist = false)
    private List<Admin> admins;

    /**
     * 角色拥有的权限
     */
    @TableField(exist = false)
    private List<AdminPermission> permissions;

    /**
     * 拥有菜单
     */
    @TableField(exist = false)
    private List<AdminMenu> menus;
}